package com.ccb.sc.common.modules.member.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ccb.sc.common.entity.BaseVersionEntity;
import com.ccb.sc.common.enums.Gender;
import com.ccb.sc.common.modules.member.enums.MemberSource;
import com.ccb.sc.common.modules.member.enums.MemberStatus;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * <p>
 * 会员信息
 * </p>
 *
 * @author ken
 * @since 2022-07-30
 */
@Getter
@Setter
@TableName("tb_member")
public class Member extends BaseVersionEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 手机号
     */
    @TableField("phone")
    private String phone;

    /**
     * 密码
     */
    @TableField("password")
    private String password;

    /**
     * 密码盐值
     */
    @TableField("salt")
    private String salt;

    /**
     * 第三方 uid 、openid 等
     */
    @TableField("oauth_id")
    private String oauthId;

    /**
     * QQ / 微信同一主体下 Unionid 相同
     */
    @TableField("union_id")
    private String unionId;

    /**
     * 昵称
     */
    @TableField("nickname")
    private String nickname;

    /**
     * 头像
     */
    @TableField("avatar")
    private String avatar;

    /**
     * 性别 0保密 1男 2女
     */
    @TableField("gender")
    private Gender gender;

    /**
     * 生日
     */
    @TableField("birthday")
    private LocalDate birthday;

    /**
     * 国家地区
     */
    @TableField("country")
    private String country;

    /**
     * 省
     */
    @TableField("province")
    private String province;

    /**
     * 市
     */
    @TableField("city")
    private String city;

    /**
     * 区域id
     */
    @TableField("region_id")
    private Long regionId;

    /**
     * 纬度坐标
     */
    @TableField("latitude")
    private BigDecimal latitude;

    /**
     * 经度坐标
     */
    @TableField("longitude")
    private BigDecimal longitude;

    /**
     * 感兴趣的商品类别
     */
    @TableField("interest_goods_category")
    private String interestGoodsCategory;

    /**
     * 积分数量
     */
    @TableField("points")
    private Integer points;

    /**
     * 成长值
     */
    @TableField("growth_value")
    private BigDecimal growthValue;

    /**
     * vip等级
     */
    @TableField("level")
    private Integer level;

    /**
     * 直播间等级
     */
    @TableField("live_level")
    private Integer liveLevel;

    /**
     * 是否团长 0否 1是
     */
    @TableField("is_heads")
    private Boolean isHeads;

    /**
     * 状态
     */
    @TableField("status")
    private MemberStatus status;

    /**
     * 邀请人id
     */
    @TableField("invite_id")
    private Long inviteId;

    /**
     * 来源 1：微信小程序 2抖音小程序
     */
    @TableField("source")
    private MemberSource source;
}
